package com.jbit.common;

/**
 * @author LiRenZhi
 * @Description: 错误码枚举
 * @date 2021-09-01 16:10
 */

public enum ErrorCodeEnum {
    /*前台*/
    OK("00000", "成功"),
    USER_ERROR("A0001", "用户端错误"),
    USER_REGISTERED_ERROR("A0100", "用户注册错误"),
    USER_NOT_AGREE_PRIVACY_AGREEMENT_ERROR("A0101", "用户未同意隐私协议"),
    REGISTRATION_COUNTRY_OR_REGION_IS_RESTRICTED("A0102", "注册国家或地区受限"),
    USERNAME_VERIFICATION_FAILED("A0110", "用户名校验失败"),
    USERNAME_ALREADY_EXISTS("A0111", "用户名已存在"),
    USERNAME_CONTAINS_SENSITIVE_WORDS("A0112", "用户名包含敏感词"),
    USERNAME_CONTAINS_SPECIAL_CHARACTERS("A0113", "用户名包含特殊字符"),
    PASSWORD_VERIFICATION_FAILED("A0120", "密码校验失败"),
    PASSWORD_LENGTH_IS_NOT_ENOUGH("A0121", "密码长度不够"),
    PASSWORD_IS_NOT_STRONG_ENOUGH("A0122", "密码强度不够"),
    CHECK_CODE_INPUT_ERROR("A0130", "校验码输入错误"),
    SMS_VERIFICATION_CODE_INPUT_ERROR("A0131", "短信校验码输入错误"),
    EMAIL_VERIFICATION_CODE_INPUT_ERROR("A0132", "邮件校验码输入错误"),
    VOICE_CHECK_CODE_INPUT_ERROR("A0133", "语音校验码输入错误"),
    USER_ID_IS_ABNORMAL("A0140", "用户证件异常"),
    USER_ID_TYPE_IS_NOT_SELECTED("A0141", "用户证件类型未选择"),
    MAINLAND_ID_CARD_NUMBER_VERIFICATION_IS_ILLEGAL("A0142", "大陆身份证编号校验非法"),
    ILLEGAL_PASSPORT_NUMBER_VERIFICATION("A0143", "护照编号校验非法"),

    /*public final static String AUTH_UNKNOWN="30000";
	public final static String AUTH_USER_ALREADY_EXISTS="30001";//用户已存在
	public final static String AUTH_AUTHENTICATION_FAILED="30002";//认证失败
	public final static String AUTH_PARAMETER_ERROR="30003";//用户名密码参数错误，为空
	public final static String AUTH_ACTIVATE_FAILED="30004";//邮件注册，激活失败
	public final static String AUTH_REPLACEMENT_FAILED="30005";//置换token失败
	public final static String AUTH_TOKEN_INVALID="30006";//token无效
	public static final String AUTH_ILLEGAL_USERCODE = "30007";//非法的用户名*/
//
//    "<p>100510 : hotelId不能为空</p>" +
//            "<p>100511 : roomId不能为空</p>" +
//            "<p>100512 : 暂时无房</p>" +
//            "<p>100513 : 系统异常</p>"

    BIZ_DATA_NULL("10000", "数据为空"),
    BIZ_PARAMETER_IS_EMPTY("10201", "参数不能为空"),
    BIZ_PARAMETER_HOTELID_IS_EMPTY("100303", "酒店ID不能为空"),
    BIZ_PARAMETER_DATE_IS_EMPTY("100303", "必须填写酒店入住及退房时间"),
    BIZ_PARAMETER_STARTDATE_LT_ENDDATE("100303", "入住时间不能大于退房时间"),
    BIZ_HOTELID_IS_EMPTY("100510", "hotelId不能为空"),
    BIZ_ROOMID_IS_EMPTY("100511", "roomId不能为空"),
    BIZ_NO_ROOM("100512", "暂时无房"),
    BIZ_ROOM_STORE_NOT_ENOUGH("100507", "库存不足"),
    BIZ_NO_HAVE_ORDER_INFO("100508", "没有相关订单信息"),
    BIZ_NO_HAVE_ORDER_ROOM_INFO("100509", "没有相关订单房型信息"),
    BIZ_COMMENTID_IS_EMPTY("100510", "commentId不能为空"),
    BIZ_ADDCOMMENT_ORDER_ID_IS_EMPTY("100511", "新增评论，订单Id不能为空"),
    BIZ_FILESIZE_TO_LONG("100512", "文件大小超限"),
    BIZ_REQUEST_NOT_FILE_UPLOAD("100513", "请求的内容不是上传文件的类型"),
    BIZ_FILE_COUNT_ERROR("100514", "上传的文件数不正确，必须是大于1小于等于4"),
    BIZ_FILE_UPLOAD_ERROR("100515", "文件上传失败"),
    BIZ_FILE_NOT_EXIST("100516", "文件不存在"),

    AUTH_UNKNOWN("30000", "用户不存在"),
    AUTH_USER_ALREADY_EXISTS("30001", "用户已存在"),
    AUTH_AUTHENTICATION_FAILED("30002", "用户名或密码错误"),
    AUTH_PARAMETER_ERROR("30003", "用户名密码参数错误，为空"),
    AUTH_ACTIVATE_FAILED("30004", "激活失败"),
    AUTH_REPLACEMENT_FAILED("30005", "置换token失败"),
    AUTH_TOKEN_INVALID("30006", "token无效"),
    AUTH_ILLEGAL_USERCODE("30007", "非法的用户名，请使用正确的邮箱地址注册"),
    AUTH_NOT_ACTIVATE("30008", "用户未激活"),
    AUTH_LOGOUT_SUCCESS("30009", "退出成功"),
    AUTH_NOT_LOGIN("30010", "用户未登录"),
    AUTH_PARAMETER_IS_EMPTY("30011", "参数为空"),
    AUTH_TOKEN_IS_EMPTY("30012", "token为空"),


    /*后台*/
    /*B0001 系统执行出错 一级宏观错误码 B0100 系统执行超时 二级宏观错误码 B0101 系统订单处理超时*/
    SYSTEM_EXECUTION_ERROR("B0001", "系统执行出错"),
    SYSTEM_EXECUTION_TIMEOUT("B0100", "系统执行超时"),
    SYSTEM_ORDER_PROCESSING_TIMEOUT("B0101", "系统订单处理超时"),

    /*第三方系统 */
    /*
    C0001 调用第三方服务出错 一级宏观错误码 C0100 中间件服务出错 二级宏观错误码 C0110 RPC服务出错
C0111 RPC服务未找到 C0112 RPC服务未注册 C0113 接口不存在 C0120 消息服务出错
C0121 消息投递出错 C0122 消息消费出错 C0123 消息订阅出错
C0124 消息分组未查到 C0130 缓存服务出错
C0131 key长度超过限制 C0132 value长度超过限制
C0133 存储容量已满 C0134 不支持的数据格式 C0140 配置服务出错 C0150 网络资源服务出错
C0151 VPN服务出错 C0152 CDN服务出错 C0153 域名解析服务出错
C0154 网关服务出错 C0200 第三方系统执行超时 二级宏观错误码 C0210 RPC执行超时
C0220 消息投递超时 C0230 缓存服务超时
C0240 配置服务超时 C0250 数据库服务超时
C0300 数据库服务出错 二级宏观错误码 C0311 表不存在
C0312 列不存在 C0321 多表关联中存在多个相同名称的列 C0331 数据库死锁 C0341 主键冲突*/

    ERROR_CALLING_THIRD_PARTY_SERVICE("C0001", "调用第三方服务出错"),
    MIDDLEWARE_SERVICE_ERROR("C0100", "中间件服务出错"),
    RPC_SERVICE_ERROR("C0110", "RPC服务出错"),
    RPC_SERVICE_NOT_FOUND("C0111", "RPC服务未找到"),
    RPC_SERVICE_IS_NOT_REGISTERED("C0112", "RPC服务未注册"),
    MESSAGE_SERVICE_ERROR("C0120", "消息服务出错"),
    MESSAGE_DELIVERY_ERROR("C0121", "消息投递出错"),
    MESSAGE_CONSUMPTION_ERROR("C0122", "消息消费出错"),
    MESSAGE_SUBSCRIPTION_ERROR("C0123", "消息订阅出错"),
    MESSAGE_GROUP_NOT_FOUND("C0124", "消息分组未查到"),
    CACHE_SERVICE_ERROR("C0130", "缓存服务出错"),


    ;

    private String errorCode;
    private String msg;

    ErrorCodeEnum(String errorCode, String msg) {
        this.errorCode = errorCode;
        this.msg = msg;
    }

    public String getErrorCode() {
        return errorCode;
    }

    public String getMsg() {
        return msg;
    }
}
